15.5 网络IO操作

Kotlin为java.net.URL增加了两个扩展方法,readBytes和readText。我们可以方便的使用这两个方法配合正则表达式实现网络爬虫的功能。

下面我们简单写几个函数实例。

根据 url 获取该 url 的响应 HTML函数

  1. fun getUrlContent(url: String): String {
  2. return URL(url).readText(Charset.defaultCharset())
  3. }

根据 url 获取该 url 响应比特数组函数

  1. fun getUrlBytes(url: String): ByteArray {
  2. return URL(url).readBytes()
  3. }

把 url 响应字节数组写入文件

  1. fun writeUrlBytesTo(filename: String, url: String) {
  2. val bytes = URL(url).readBytes()
  3. File(filename).writeBytes(bytes)
  4. }

下面这个例子简单的获取了百度首页的源代码。

  1. getUrlContent("https://www.baidu.com")

下面这个例子根据 url 来获取一张图片的比特流,然后调用readBytes()方法读取到字节流并写入文件。

  1. writeUrlBytesTo("图片.jpg", "http://n.sinaimg.cn/default/4_img/uplaod/3933d981/20170622/2fIE-fyhfxph6601959.jpg")

在项目相应文件夹下我们可以看到下载好的 “图片.jpg” 。